var $tbody = $("#sample-table-1 tbody");
/**
 * 日期控件实例化
 */
console.log('usermanage')
/**
 * 获取国家列表
 */
$(function () {
    getCountry();
    getProvince();
    getJob();
});

jQuery(function () {
    $('.date-picker').datepicker({autoclose: true}).next().on(ace.click_event, function () {
        $(this).prev().focus();
    });
    $('#enddate').datepicker().on('changeDate',function(e){
        var startdate = e.date;
        $('#startdate').datepicker('setStartDate',startdate)
    });
    $('#startdate').datepicker().on('changeDate',function(e){
        var enddate = e.date;
        $('#enddate').datepicker('setEndDate',enddate)
    })
});

// 初始化table
$("#user_table").bootstrapTable({
    'url': '/user/admin/findUsers',
    'cache':false,
    //'method': 'post',
    'queryParams':function(params){
        params["recommendType"] = $("#userRecommendType").val() ===""?null:$("#userRecommendType").val();
        params["phoneNo"] = $("#phoneno").val() === ""?null:$("#phoneno").val();
        params["name"] = $('#nickname').val() === ""?null:$('#nickname').val();
        params["gender"] = $('#gender').val() === ""?null:$('#gender').val();
        params["type"] = $('#userType').val() === ""?null:$('#userType').val();
        params["province"] = $('#provinceName').find('option:selected').text()===""?null:$('#provinceName').find('option:selected').text()==="全部"?null:$('#provinceName').find('option:selected').text();
        params["city"] = $('#cityName').find('option:selected').text()===""?null:$('#cityName').find('option:selected').text();
        params["startTime"] = $('#enddate').val() === ""?null:$('#enddate').val();
        params["endTime"] = $('#startdate').val() === ""?null:$('#startdate').val();
        params["minArticles"] = $('#maxArticles').val() === ""?null:$('#maxArticles').val();
        params["maxArticles"] = $('#minArticles').val() === ""?null:$('#minArticles').val();
        params["minFriends"] = $('#maxFriends').val() === ""?null:$('#maxFriends').val();
        params["maxFriends"] = $('#minFriends').val() === ""?null:$('#minFriends').val();
        $.each(params,function(key,value){
           if(value == null){
               delete params[key]
           }
        });
    	return params;
    },
    'toolbar': $('div[data-name="btnCtl"]'),
    'striped': true,
    'pagination': true,
    'sidePagination': 'server',
    'pageSize': globalPageSize,
    'pageList': [],
    'clickToSelect': true,
    'singleSelect': true,
    'smartDisplay': true,
    'responseHandler': function(resb) {
    	return {
    		'total': resb.data.total,
    		'rows': resb.data.content,
    	}
    },
    'onCheck': function() {
        $("button[data-target='#deleteModal']").removeAttr("disabled");
    },
    'onUncheck': function() {
        $("button[data-target='#deleteModal']").attr("disabled", 'true');
    },
    'columns': [{
        'checkbox': true,
        'class': 'hide'
    }, {
        'field': 'name',
        'title': '昵称',
        'valign': 'middle',
        'align': 'center',
        'formatter': function(value, row){
            //添加修改按钮
            if(row.type === 2) {
                return value + '<button class="update" data-toggle="modal" data-target="#updateModal">修改</button>';
            }else{
                return value;
            }
        }
    }, {
        'field': 'phoneNo',
        'title': '手机号码',
        'valign': 'middle',
        'align': 'center',
        'sortable': false,
    }, {
        'field': 'gender',
        'title': '性别',
        'valign': 'middle',
        'align': 'center',
        'formatter': function(gender){
        	if(gender == '1'){
        		gender = '男';
        	}else if(gender == '2'){
        		gender = '女';
        	}
        	return gender == '0' ? '保密': gender;
        }
    }, {
        'field': 'bornDate',
        'title': '出生日期',
        'valign': 'middle',
        'align': 'center',
        'formatter': function(value){
            if(value){
                var date = value.split(" ");
                return date[0]
            }else{
                return value
            }
        }
    }, {
        'field': 'jobName',
        'title': '职业',
        'valign': 'middle',
        'align': 'center'
    }, {
        'field': 'nation',
        'title': '国家',
        'valign': 'middle',
        'align': 'center',
        'formatter':function (nation) {
            var obj = {'86':'中国'};
            return obj[nation];
        },
        'class':'hide'
    }, {
        'field': 'province',
        'title': '省',
        'valign': 'middle',
        'align': 'center'
        // 'class':'hide'
    }, {
        'field': 'city',
        'title': '市',
        'valign': 'middle',
        'align': 'center'
        // 'class':'hide'
    }, {
        'field': 'address',
        'title': '地址',
        'valign': 'middle',
        'align': 'center',
        'class': 'hide'
    }, {
        'field': 'longitude',
        'title': '经度',
        'align': 'center',
        'class': 'hide'
    }, {
        'field': 'latitude',
        'title': '纬度',
        'align': 'center',
        'class': 'hide'
    },{
        'field': 'createTime',
        'title': '注册日期',
        'valign': 'middle',
        'align': 'center'
    },{
        'field': 'totalArticle',
        'title': '帖子数',
        'valign': 'middle',
        'align': 'center'
    },{
        'field': 'totalFriend',
        'title': '好友数',
        'valign': 'middle',
        'align': 'center'
    }, {
        'field': 'userId',
        'title': '用户推荐',
        'valign': 'middle',
        'align': 'center',
        'formatter': function(userId,row){
            //var userId = rowData.userId;
            if(row.recommendType == 1){
                row.recommendType = 0;
                return "<button class='btn btn-sm btn-danger cancelRecommendUser' data-userid='" + userId + "'data-recommendtype='" + row.recommendType + "'>取消推荐</button>"
            }else{
                row.recommendType = 1;
                return "<button class='btn btn-sm btn-success recommendUser' data-userid='" + userId + "'data-recommendtype='" + row.recommendType + "'>推荐用户</button>"
            };
        }
    }]
});

/**
 * 定位搜索
 */
function codeAddress() {
    $('#mapWindow')[0].contentWindow.codeAddress()
}

/**
 * 添加用户表单验证
 */
$('#addForm,#stationFormId').validationEngine('attach', {
    promptPosition: 'centerRight',
    scroll: false,
    binded: true
});

/**
 * 切换城市
 */
$('#provinceName').on('change',function () {
    $('#cityName').html("");
    getCity();
});

$('#addProvinceName, #updateProvinceName').on('change',function () {
    $('#addCityName').html("");
    addGetCity();
});

/**
 *根据session存入的不同参数触发不同的事件
 */
$(function () {
    var val = sessionStorage.getItem('case');
    if(val){
        $("#addModal").modal({show:true});
        $("#addModal").on('show.bs.modal', function() {
            $(this).find("input[type=text]").val("");
        });
    };
    sessionStorage.removeItem('case');
});


$("#updateModal").on('show.bs.modal', function() {
    var tableData = $("#user_table").bootstrapTable("getSelections")[0];
    console.log(tableData);
    $('#updateName').val(tableData.name);
    $('#userId').val(tableData.userId);
    // $('#updateBornDate').val(tableData.bornDate);
});

/**
 * 添加头像和头像上传
 */
$(document).ready(function () {
    $("#addPageAddImg").click(function () {
        $("#addPageAddImg").css({"height":"124px"});
        $('#bord').addClass("borderbox");
        $('#merchantImgs').css({"width": "100%", "height": "100%"});
    });
});

$(function(){
    $('#addPageAddImg').change(function(){
       var formdata = new FormData();
        $.each($('#addPageAddImg')[0].files, function(i,file){
           formdata.append('file',file);
        });
        $.ajax({
           url:'../common/uploadFile',
           type:'POST',
           data: formdata,
           dataType:'json',
           cache: false,
           processData : false,
           contentType : false,
           success:function (resp) {
               var url = resp.data.url;
               if(resp.code == '1'){
                   $('#merchantImgs').attr('src',url)
                   $('#userImg').val(url)
               }else{
                   alert("预览失败，请重新上传");
               }
           }
        });
    });
});

/**
 * 将普通用户设置为推荐用户
 */
$(document).on('click','.recommendUser',function () {
    return $.ajax({
        url:"../user/admin/adminUpdateUser",
        type:"POST",
        data:{
            userId:$(this).data("userid"),
            recommendType:$(this).data("recommendtype")
        },
        dataType:"json",
        cache:false,
        success:function (resb) {
            alert(resb.message);
            $('#user_table').bootstrapTable('refresh');
        },
        error:function(XMLHttpRequest, textStatus, errorThrown){
            alert(textStatus);
        }
    });
});

/**
 * 将已经推荐的用户取消推荐
 */
$(document).on('click','.cancelRecommendUser',function () {
    return $.ajax({
        url:"../user/admin/adminUpdateUser",
        type:"POST",
        data:{
            userId:$(this).data("userid"),
            recommendType:$(this).data("recommendtype")
        },
        dataType:"json",
        cache:false,
        success:function(resb){
            alert(resb.message);
            $('#user_table').bootstrapTable('refresh');
        },
        error:function(XMLHttpRequest, textStatus, errorThrown){
            alert(textStatus);
        }
    })
});

/**
 * 角色查询ajax
 * @param stationName 请求查询的车站名
 */

function userQuery(queryData) {
	if($("#nickname").val()== ''&&$("#phoneno").val()==''&&$('#gender').val()===""&&$('#userRecommendType').val()===""&&$('#userType').val()===""&&$('#provinceName').find('option:selected').text()==="全部"&&$('#cityName').find('option:selected').text()===""&&
        $('#enddate').val()===""&&$('#startdate').val()===""&&$('#maxArticles').val()===""&&$('#minArticles').val()===""&&$('#maxFriends').val()===""&&$('#minFriends').val()===""){
		$('#user_table').bootstrapTable('refreshOptions',{pageNumber:1,pageSize:globalPageSize});
	}else{
	$.ajaxSetup({cache:false});
    $.ajax({
        type: "POST",
        url: "../user/admin/findUsers",
        //data: JSON.stringify(queryData),
        data: queryData,
        dataType: 'json',
        //contentType: 'application/json',
        success: function(resb) {
        	console.log(resb.data);
        	console.log();
            if (resb.data.length != 0) {
                $("#user_table").bootstrapTable('load',  {
            		'total': resb.data.total,
            		'rows': resb.data.content,
                  } );
            } else {
                $("#user_table").bootstrapTable('removeAll');
            }
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) {
            alert(textStatus);
        }
    });
	}
    return false;
};

/**
 * 角色操作(新增，更新，删除)
 * @param action [add/update/remove]
 * @param data
 *               [add/update 数据结构 {name: string, description: string, listAuthorityId: array} ]
 *               [delete 数据结构 {roleId: int}]
 * @param async/scync [default async]
 */
function userManagement(action, data, async) {
    var url = null;
    (async === false) ? async = false: async = true;
    if (action === 'add') {
        url = '../user/admin/addUser';
   } else if (action === 'update') {
       url = '../user/admin/adminUpdateUser';
   } else {
       // url = '../user/delete';
    };
    return $.ajax({
        type: "POST",
        url: url,
        data: data,
        dataType: 'json',
        async: async,
        success: function(resb) {
            alert(resb.message);
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) {
            alert(textStatus);
        }
    });
}

/**
 * 获取国家列表
 */
function getCountry() {
    $.ajax({
       url:'../user/public/getNations',
       type:'POST',
       dataType:'json',
       data:{
           'limit': 300
       },
       success:function (resp,m) {
           var data = resp.data.content;
           if(data.length !=0){
               $.each(data,function (i,val) {
                   $('select[name="countryName"]').append("<option value='" + val.code + "'>" + val.cnName + "</option>");
               })
           }
       },
       error:function (XMLHttpRequest, textStatus, errorThrown) {
           alert(textStatus);
       } 
    });
};

/**
 * 获取省份、城市列表
 */
function getProvince(){
  $.ajax({
     url:'../user/public/subLocations',
     type:'POST',
     data:{
        'parentId': 86 
     },
     dataType:'json',
     success:function (resp) {
         var data = resp.data;
         if(data.length !=0){
             $('#provinceName,#addProvinceName, #updateProvinceName').empty();
             $('#provinceName,#addProvinceName, #updateProvinceName').append("<option value=''>全部</option>");
             $.each(data,function (i,val) {
                 $('#provinceName,#addProvinceName, #updateProvinceName').append("<option value='" + val.id + "'>" + val.name + "</option>");
             })
         };
         getCity();
     },
     error:function (XMLHttpRequest, textStatus, errorThrown) {
         alert(textStatus);
     }
  });
};

/**
 * 获取城市列表
 */
function getCity(){
    $.ajax({
        url:'../user/public/subLocations',
        type:'POST',
        data:{
            'parentId': $('#provinceName').val()
        },
        dataType:'json',
        success:function (resp) {
            var data = resp.data;
            if(data.length !=0){
                $('#cityName,#addCityName, #updateCityName').empty();
                $('#cityName,#addCityName, #updateCityName').append("<option value=''>全部</option>");
                $.each(data,function (i,val) {
                    $('#cityName,#addCityName, #updateCityName').append("<option value='" + val.id + "'>" + val.name + "</option>");
                })
            };
        },
        error:function (XMLHttpRequest, textStatus, errorThrown) {
            alert(textStatus);
        }
    });
};

/**
 * 添加用户时获取城市列表
 */
function addGetCity(){
    $.ajax({
        url:'../user/public/subLocations',
        type:'POST',
        data:{
            'parentId': $('#addProvinceName').val() != '' ? $('#addProvinceName').val() : $('#updateProvinceName').val()
        },
        dataType:'json',
        success:function (resp) {
            var data = resp.data;
            if(data.length !=0){
                $('#addCityName,  #updateCityName').empty();
                $('#addCityName,  #updateCityName').append("<option value=''>全部</option>");
                $.each(data,function (i,val) {
                    $('#addCityName,  #updateCityName').append("<option value='" + val.id + "'>" + val.name + "</option>");
                })
            };
        },
        error:function (XMLHttpRequest, textStatus, errorThrown) {
            alert(textStatus);
        }
    });
};

/**
 * 获取职业列表
 */
function getJob(){
    $.ajax({
        url:'../user/job/showJobs',
        type:'POST',
        data:{
            // 'parentId': $('#provinceName').val()
        },
        dataType:'json',
        success:function (resp) {
            var data = resp.data;
            if(data.length !=0){
                $('#jobName, #updateJobName').append("<option value=''>全部</option>");
                $.each(data,function (i,val) {
                    $('#jobName, #updateJobName').append("<option value='" + val.jobId + "'>" + val.name + "</option>");
                })
            };
        },
        error:function (XMLHttpRequest, textStatus, errorThrown) {
            alert(textStatus);
        }
    });
};


/**
 * 查询表单提交
 */
$("#stationFormId").submit(function() {
    if($('#stationFormId').validationEngine('validate') == false){
        return false;
    }
    var queryData = {
        'name': $('#nickname').val()===""?null:$('#nickname').val(),
        'phoneNo': $('#phoneno').val()===""?null:$('#phoneno').val(),
        'gender': $('#gender').val()===""?null:$('#gender').val(),
        'recommendType': $('#userRecommendType').val()===""?null:$('#userRecommendType').val(),
        'type': $('#userType').val()===""?null:$('#userType').val(),
        'province': $('#provinceName').find('option:selected').text()==="全部"?null:$('#provinceName').find('option:selected').text(),
        'city': $('#cityName').find('option:selected').text()===""?null:$('#cityName').find('option:selected').text(),
        'startTime': $('#enddate').val()===""?null:$('#enddate').val(),
        'endTime': $('#startdate').val()===""?null:$('#startdate').val() + " " +  "23:59:59",
        'minArticles': $('#maxArticles').val()===""?null:$('#maxArticles').val(),
        'maxArticles': $('#minArticles').val()===""?null:$('#minArticles').val(),
        'minFriends': $('#maxFriends').val()===""?null:$('#maxFriends').val(),
        'maxFriends': $('#minFriends').val()===""?null:$('#minFriends').val(),
        'limit':15,
        'offset':0
    };
    $.each(queryData,function (key,val) {
        if(val===null){
            delete queryData[key];
        };
    });
    return userQuery(queryData);
});

/**
 * 新增模态框隐藏
 */
$("#addModal").on('hidden.bs.modal', function() {
    $(this).find("#merchantImgs").removeAttr('src');
    $(this).find("input[type=text]").val("");
    $(this).find("input[type=password]").val("");
});

/**
 * 新增,更新,删除角色表单提交
 */
$("#addForm,#updateForm,#deleteForm").submit(function() {
    if($('#addForm').validationEngine('validate') == false){
        return false;
    }
    var type = $(this).data("type"),
        $modal = $("#" + type + "Modal"),
        $inputs = $(this).find('input[type="text"]'),
        $sels = $(this).find('select'),
        tableData = $("#user_table").bootstrapTable("getSelections")[0],
        data = null;
    	if (type ==='add'){
            data = {
                'name': $inputs[1].value,
                'bornDate':$inputs[4].value,
                'jobName':$('#jobName').find('option:selected').text(),
                'longitude':$inputs[5].value,
                'latitude':$inputs[6].value,
                'gender':$('input:radio[name="gender"]:checked').val(),
                'type':$sels[1].value,
                'nation':$sels[2].value,
                'province':$('#addProvinceName').find('option:selected').text(),
                'city':$('#addCityName').find('option:selected').text(),
                'address':$inputs[7].value,
                'imageUrl': $('#merchantImgs').attr('src'),
                'phoneNo': $inputs[2].value,
                'password': $.md5($inputs[3].value)
            };
        }else if(type === 'update') {
            data = {
                'userId': $('#userId').val(),
                'name': $inputs[1].value,
                'bornDate':$inputs[2].value,
                'jobName':$('#updateJobName').find('option:selected').text(),
                'longitude':$inputs[3].value,
                'latitude':$inputs[4].value,
                'gender':$('input:radio[name="gender"]:checked').val(),
                'type':$sels[1].value,
                'nation':$sels[2].value,
                'province':$('#updateProvinceName').find('option:selected').text(),
                'city':$('#updateCityName').find('option:selected').text(),
                'address':$inputs[5].value,
                'imageUrl': $('#updateImg').attr('src')
            };
        }
    $modal.modal('hide');
    $('#addProvinceName').val('');
    // 完成ajax后刷新表格数据
    userManagement(type, data).done(function() {
        $("#user_table").bootstrapTable("refresh")
    });

    // 阻止表格冒泡事件
    return false;
});
